﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using Comun;
using System.Text;
using System.Windows.Forms;

namespace Guada
{
    public partial class FrmMBPaciente : Plantilla
    {
        //private bool TipoFrm;
        private string docu;

        public FrmMBPaciente()
        {
            InitializeComponent();
            //TipoFrm = sTipo;
            docu = string.Empty;
        }

        public void SetDocumento(string sNroDoc)
        {
            docu = sNroDoc;
        }

        private void FrmMBPaciente_Load(object sender, EventArgs e)
        {
            //HabilitarGrupos();
            if (docu != string.Empty)
            {
                BtnBuscar_Click(new object(), new EventArgs());
            }
        }

        private void BtnBuscar_Click(object sender, EventArgs e)
        {
            try
            {
                //if (TipoFrm)
                //{
                    CargaModificar();
                //}
                //else
                //{
                //}
            }
            catch
            {
                MessageBox.Show("Se ha producido un Error.", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.Close();
            }
        }

        private void btnAceptar_Click(object sender, EventArgs e)
        {
            if (ControlDeDatos(grpModPac.Text))
            {
                if (ControlDeDatos(grpModDom.Text))
                {
                    if (ControlDeDatos(grpModOSPre.Text))
                    {
                        FacProFacu.Sistema sistema = new FacProFacu.Sistema();
                        int NumPac = sistema.GetIdPaciente(lblsHC.Text);
                        FacProFacu.Paciente paciente = new FacProFacu.Paciente();
                        int nuevo = paciente.ModificacionPaciente(NumPac.ToString(), txtApellido.Text, txtNombre.Text, CmbTipoDoc.SelectedIndex.ToString(),
                             txtNumDoc.Text, txtFecNac.Text, CmbSexo.SelectedIndex.ToString(),
                             CmbEstCivil.SelectedIndex.ToString(), txtCelu.Text, txtCalle.Text, txtAltura.Text,
                             txtPiso.Text, txtDpto.Text, txtLocalidad.Text, txtProv.Text, txtTelef.Text,
                             CmbTipoCob.SelectedIndex.ToString(), txtAsociado.Text);
                        if (nuevo < 1)
                        {
                                MessageBox.Show("Error al realizar la modificación de los datos del Paciente.", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                            else
                            {
                                MessageBox.Show("Actuaklizacion realizada con éxito.", "INFORMACION", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                this.Close();
                            }
                    }
                    else
                    {
                        MessageBox.Show("Verificar los datos de la Cobertura Médica.", "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.CmbTipoCob.Focus();
                    }
                }
                else
                {
                    MessageBox.Show("Verificar los datos Domiciliarios. ", "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.txtCalle.Focus();
                }
            }
            else
            {
                MessageBox.Show("Verificar los datos del Paciente. ", "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.txtApellido.Focus();
            }
        }

        private void BtnCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void CargaModificar()
        {
            try
            {
                FacProFacu.Sistema sistema = new FacProFacu.Sistema();
                Controles control = new Controles();
                control.CargarCBox(CmbTipoDoc, sistema.TablaDeTabla("1", "TIPODOC").Tables["TIPODOC"], "CODIGO", "DESCRIPCION", Controles.ComboBoxLabel.SelectOne);
                control.CargarCBox(CmbSexo, sistema.TablaDeTabla("2", "SEXO").Tables["SEXO"], "CODIGO", "DESCRIPCION", Controles.ComboBoxLabel.SelectOne);
                control.CargarCBox(CmbEstCivil, sistema.TablaDeTabla("3", "ESTADOCIVIL").Tables["ESTADOCIVIL"], "CODIGO", "DESCRIPCION", Controles.ComboBoxLabel.SelectOne);
                control.CargarCBox(CmbTipoCob, sistema.GetObraSocial().Tables["OBRASOCIAL"], "CODIGO", "DESCRIPCION", Controles.ComboBoxLabel.SelectOne);

                FacProFacu.Paciente paciente = new FacProFacu.Paciente();
                DataTable Dt = new DataTable();
                Dt = paciente.GetDatosPaciente(txtNumDoc.Text).Tables["PACIENTE"];
                if (Dt.Rows.Count > 0)
                {
                    lblsHC.Text = Dt.Rows[0]["IDHISTORIACLINICA"].ToString();
                    txtApellido.Text = Dt.Rows[0]["APELLIDO"].ToString();
                    txtNombre.Text = Dt.Rows[0]["NOMBRE"].ToString();
                    CmbTipoDoc.SelectedValue = Convert.ToInt32(Dt.Rows[0]["TIPODOC"].ToString());
                    txtNumDocu.Text = Dt.Rows[0]["NRODOC"].ToString();
                    txtFecNac.Text = Dt.Rows[0]["FEC_NAC"].ToString();
                    CmbSexo.SelectedValue = Convert.ToInt32(Dt.Rows[0]["SEXO"].ToString());
                    CmbEstCivil.SelectedValue = Convert.ToInt32(Dt.Rows[0]["ESTADOCIVIL"].ToString());
                    txtCelu.Text = Dt.Rows[0]["CELULAR"].ToString();
                    txtCalle.Text = Dt.Rows[0]["DIRECCION"].ToString();
                    txtAltura.Text = Dt.Rows[0]["NUMERO"].ToString();
                    txtPiso.Text = Dt.Rows[0]["PISO"].ToString();
                    txtDpto.Text = Dt.Rows[0]["DEPARTAMENTO"].ToString();
                    txtLocalidad.Text = Dt.Rows[0]["LOCALIDAD"].ToString();
                    txtProv.Text = Dt.Rows[0]["PROVINCIA"].ToString();
                    txtTelef.Text = Dt.Rows[0]["TELEFONO"].ToString();
                    CmbTipoCob.SelectedValue = Convert.ToInt32(Dt.Rows[0]["IDOBRASOCIAL"].ToString());
                    txtAsociado.Text = Dt.Rows[0]["NROOBRASOCIAL"].ToString();
                }
                else
                {
                    if (MessageBox.Show("El paciente no esta dado de alta en el sistema o su documento no es correcto. Para darlo de alta presione YES, para realizar nuevamente la búsqueda presione NO", "ATENCION", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
                    {
                        FrmPaciente nuevo = new FrmPaciente();
                        nuevo.Show();
                        this.Close();
                    }
                    else
                    {
                        //TipoFrm = false;
                        //HabilitarGrupos();
                    }
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString(), "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        //private void HabilitarGrupos()
        //{
        //    if (TipoFrm)
        //    {
        //        //MODIFICACION
        //        grpModPac.Visible = true;
        //        grpModDom.Visible = true;
        //        grpModOSPre.Visible = true;
        //    }
        //    else
        //    {
        //        //CONSULTA
        //        grpModPac.Visible = false;
        //        grpModDom.Visible = false;
        //        grpModOSPre.Visible = false;
        //        btnAceptar.Visible = false;
        //        BtnCancelar.Text = "Cerrar";
        //    }
        //}

        private bool ControlDeDatos(string grupo)
        {
            bool datos = false;

            switch (grupo)
            {
                case "Datos del Paciente":
                    if ((txtApellido.Text != "") && (txtNombre.Text != "") && (CmbTipoDoc.SelectedIndex > 0) && (txtNumDocu.Text != "") &&
                       (txtFecNac.Text != "") && (CmbSexo.SelectedIndex > 0) && (CmbEstCivil.SelectedIndex > 0))
                    {
                        datos = true;
                    }
                    break;
                case "Datos del Domicilio :":
                    if ((txtCalle.Text != "") && (txtAltura.Text != "") &&
                        (txtLocalidad.Text != "") && (txtProv.Text != ""))
                    {
                        datos = true;
                    }
                    break;
                case "Obra Social y Prepaga":
                    if ((CmbTipoCob.SelectedIndex > 0) && (txtAsociado.Text != ""))
                    {
                        datos = true;
                    }
                    break;
                default:
                    break;
            }
            return datos;
        }
    }
}
